import Head from 'next/head';
import { LinkCards } from '../components/mdx/LinkCards';
import { Contributors } from '../components/mdx/Contributors';
import { FAQs } from '../components/mdx/FAQs';

<Head>
  <title>About - Mantine React Table</title>
  <meta
    name="description"
    content="About Mantine React Table. A fully-featured table component library for React based on TanStack Table V8 and Mantine, forked from Material React Table."
  />
</Head>

## About Mantine React Table

Mantine React Table is a fully featured Mantine implementation of TanStack React Table V8, forked from Material React Table.

### What is Mantine React Table?

Mantine React Table (MRT) is a fully-featured data grid/table component library for React built on [TanStack Table V8's](https://react-table.tanstack.com/) powerful API. MRT is meant to work best in projects already using [Mantine](https://mantine.dev/) components, but it is not necessarily required. However, be aware that [Mantine](https://mantine.dev/) and [Emotion](https://emotion.sh/) are required as peer dependencies for MRT to work.

MRT is built from the ground up in TypeScript, and is designed to have a great type-safe dev experience with generics that react to the data structures you pass in. TypeScript is not at all required to use MRT, but it is recommended for the best and fasted developer experience, especially when defining columns.

### Motivation

Mantine React Table started as a fork of [Material React Table](https://material-react-table.com) after it became successful. I have used Material UI for years, and consider it a workhorse. But Material Design itself is starting to look dated, and some of the quality of the MUI components are starting to suffer. [Mantine](https://mantine.dev/) is a relatively new React UI library that is easy to fall in love with. As soon I found Mantine and discovered that it is built with some of the same tech and patterns as MUI already is, I knew I could easily port the Material React Table codebase to Mantine. Mantine has been a joy to work with, and I hope you enjoy using it as much as I do. A powerful data grid component seemed to be missing from the Mantine ecosystem, so I decided to create Mantine React Table.

### License

Mantine React Table is licensed under the [MIT License](https://github.com/KevinVandy/mantine-react-table/blob/v2/LICENSE) and is free to use in both personal and commercial projects.

### Features

✅ < 45kb gzipped - [Bundlephobia](https://bundlephobia.com/package/mantine-react-table)

✅ Advanced TypeScript Generics Support (TypeScript Optional)

✅ Aggregation and Grouping (Sum, Average, Count, etc.)

✅ Click To Copy Cell Values

✅ Column Action Dropdown Menu

✅ Column Hiding

✅ Column Ordering via Drag'n'Drop

✅ Column Pinning (Freeze Columns)

✅ Column Resizing

✅ Customize Icons

✅ Customize Styling of internal Mantine Components

✅ Data Editing (4 different editing modes)

✅ Density Toggle

✅ Detail Panels (Expansion)

✅ Filtering (supports client-side and server-side)

✅ Filter Match Highlighting

✅ Full Screen Mode

✅ Global Filtering (Search across all columns, rank by best match)

✅ Header Groups & Footers

✅ Localization (i18n) support

✅ Manage your own state or let the table manage it internally for you

✅ Pagination (supports client-side and server-side)

✅ Row Actions (Your Custom Action Buttons)

✅ Row Numbers

✅ Row Ordering via Drag'n'Drop

✅ Row Selection (Checkboxes)

✅ SSR compatible

✅ Sorting (supports client-side and server-side)

✅ Theming (Respects your Mantine Theme)

✅ Toolbars (Add your own action buttons)

✅ Tree Data / Expanding Sub-rows

✅ Virtualization (react-virtual)

### Contribute

If you would like to contribute code to the project, please read the [Contributing Guide](https://github.com/kevinvandy/mantine-react-table/blob/v2/CONTRIBUTING.md) to learn how to get started.

#### Support the Project

If you enjoy this library, please consider supporting the project by leaving a ⭐️ on the [GitHub repository](https://github.com/kevinvandy/mantine-react-table).

Also consider [sponsoring me on GitHub](https://github.com/sponsors/KevinVandy) to help cover the costs of maintaining the project.

Nothing financial is required at all to support this library. The greatest help of all, actually, is to get involved in the project and community. Submitting [issues](https://github.com/kevinvandy/mantine-react-table/issues), [pull requests](https://github.com/kevinvandy/mantine-react-table/pulls), and helping others in the [Discord Server](https://discord.gg/5wqyRx6fnm) are all great ways to help out.

If you see any inaccuracies in the documentation, there is a `"Suggest an Edit For This Page on GitHub"` button at the bottom of every page that will take you directly to the page's markdown file on GitHub. You can then edit the file and submit a pull request to fix any issues.

#### Join the Development Discussion

Want to join the development discussion? Join the [Discord server](https://discord.gg/5wqyRx6fnm) to ask questions or talk about the general direction of the project(s).

#### Contributors

<Contributors />

### OSS that Makes Mantine React Table Possible

- [Mantine](https://mantine.dev/) - Components!
- [TanStack](https://tanstack.com/) - React Table and React Virtual are key underlying technologies of MRT.
- [Vercel](https://vercel.com/) - Next.js, Domains, and Hosting
- [Docsearch](https://docsearch.algolia.com/) - High quality search for static websites, free for open source projects
- [Plausible Analytics](https://plausible.io/) - Anonymous and privacy-friendly analytics (no tracking or cookies!). View the [MRT Plausible Analytics Dashboard](https://plausible.io/mantine-react-table.com) yourself.
- [EthicalAds](https://ethicalads.io/) - Ethical ads for open source projects (no tracking or cookies!)

### FAQs

<FAQs
  faqStructuredData={{
    '@context': 'https://schema.org',
    '@type': 'FAQPage',
    mainEntity: [
      {
        '@type': 'Question',
        name: 'Is Mantine React Table free to use?',
        acceptedAnswer: {
          '@type': 'Answer',
          text: '<p><b>Yes</b>, <a href="https://www.mantine-react-table.com/about#faqs">as stated above</a>, Mantine React Table uses the <b>MIT</b> License and is free to use for either personal or enterprise projects.</p>',
        },
      },
      {
        '@type': 'Question',
        name: 'Is Mantine React Table the same as Material React Table?',
        acceptedAnswer: {
          '@type': 'Answer',
          text: 'Kind of. Mantine React Table is a fork of Material React Table. About 80% of their code is the same, since both are built on TanStack Table. But Mantine React Table uses Mantine for the front-end instead of Material UI. Both libraries pretty much offer the same features.',
        },
      },
      {
        '@type': 'Question',
        name: 'Should I use Mantine React Table?',
        acceptedAnswer: {
          '@type': 'Answer',
          text: '<p>It depends. If you are already using <b>Mantine</b> for other components in your project, and are looking for a efficient and fully featured data grid component to drop in, this may be the perfect library for you. MRT is not necessarily the lightest weight table library out there, but it has a much <b>smaller bundle size</b> than large data grid libraries like AG Grid. Though, if you are looking for the most powerful data grid possible, <a href="https://www.ag-grid.com/" target="_blank"><b>AG Grid</b></a> is still recommended above MRT as long as you do not care about bundle size.</p>',
        },
      },
    ],
  }}
/>
